﻿using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using System;
using System.Collections.Generic;

namespace BeatingMole
{
    public class CInfoWeapon
    {
        #region "Variable"
        private int _dam;
        private Texture2D _spriteSheet;
        private string _nameImages;
        private Dictionary<string, Rectangle> _xmlrectangle;
        private int _indexPos;
        private int _posImages;

        private Texture2D _spriteSheetCircle;
        private string _nameSpriteSheetCircle;
        private Dictionary<string, Rectangle> _xmlSpriteSheetCircle;
        private int _indexPosImagesCircle;
        private int _posImagesCircle;

        private int _type;
        private int _limitTime;
        ContentManager _Content;
        private float _delay;
        #endregion
        
        #region "Properties"
        public int IndexPosImagesCircle
        {
            set { _indexPosImagesCircle = value; }
            get { return _indexPosImagesCircle; }
        }
        public int PosImagesCircle
        {
            set { _posImagesCircle = value; }
            get { return _posImagesCircle; }
        }
        public Dictionary<string, Rectangle> XmlSpriteSheetCircle
        {
            set { _xmlSpriteSheetCircle = value; }
            get { return _xmlSpriteSheetCircle; }
        }
        public string NameSpriteSheetCircle
        {
            set { _nameSpriteSheetCircle = value; }
            get { return _nameSpriteSheetCircle; }
        }
        public Texture2D SpriteSheetCircle
        {
            set { _spriteSheetCircle = value; }
            get { return _spriteSheetCircle; }
        }
        public float Delay
        {
            set { _delay = value; }
            get { return _delay; }
        }
        public int IndexPos
        {
            set { _indexPos = value; }
            get { return _indexPos; }
        }
        public int PosImages
        {
            set { _posImages = value; }
            get { return _posImages; }
        }
        public string NameImages
        {
            set { _nameImages = value; }
            get { return _nameImages; }
        }
         /// <summary>
        /// Sát Thương Của Vũ Khí
        /// </summary>
        public int Dam
        {
            set { _dam = value; }
            get { return _dam; }
        }
        /// <summary>
        /// Tập Ảnh Của Vũ Khí
        /// </summary>
        public Texture2D SpriteSheet
        {
            set { _spriteSheet = value; }
            get { return _spriteSheet;   }
        }
        /// <summary>
        /// Loại Vũ Khí
        /// </summary>
        public int Type
        {
            set { _type = value; }
            get { return _type; }
        }
        /// <summary>
        /// Vùng Cắt Ảnh Của Vũ Khí
        /// </summary>
        public Dictionary<string, Rectangle> XmlRectangle
        {
            set { _xmlrectangle = value; }
            get { return _xmlrectangle; }
        }
        /// <summary>
        /// Thời Gian Sử Dụng
        /// </summary>
        public int LimitTime
        {
            set { _limitTime = value; }
            get { return _limitTime; }
        }
        #endregion

        #region "Constructor"
        public CInfoWeapon(ContentManager content)
        {
            _Content = content;  
            Dam = 0;
            SpriteSheet = null;
            Type = 0;
            XmlRectangle = null;
            LimitTime = 0;
        }
        /// <summary>
        /// Phương Thức Khởi Tạo Có Tham Số
        /// </summary>
        /// <param name="dam">Sát Thương Của Vũ Khí</param>
        /// <param name="spriteSheet">Tập Ảnh Của Vũ Khí</param>
        /// <param name="type">Loại Vũ Khí</param>
        /// <param name="xmlrectangle">Vùng Cắt Ảnh Của Vũ Khí</param>
        /// <param name="limitTime">Thời Gian Sử Dụng</param>
        public CInfoWeapon(ContentManager content, int dam, Texture2D spriteSheet, int type, Dictionary<string, Rectangle> xmlrectangle, int limitTime)
        {
            _Content = content;
            Dam = dam;
            SpriteSheet = spriteSheet;
            Type = type;
            XmlRectangle = xmlrectangle;
            LimitTime = limitTime;
        }
        /// <summary>
        /// Phương Thức Khởi Tạo Đối Tượng CInfoWeapon
        /// </summary>
        /// <param name="wp">Đối Tượng CInfoWeapon</param>
        public CInfoWeapon(CInfoWeapon wp)
        {
            Dam = wp._dam;
            SpriteSheet = wp._spriteSheet;
            Type = wp._type;
            XmlRectangle = wp._xmlrectangle;
            LimitTime = wp._limitTime;
        }
        #endregion
    }
}
